package com.dsbj.apolo.facecollector.utils.strprocess;

import java.math.BigDecimal;

/**
 * 对象解析相关方法。
 * 
 * @author cjw 2019-07-16
 */
public class ObjectParse {

	/**
	 * 将object转换为str。
	 * 
	 * @param object
	 * @param defaultValue
	 * @return cjw 2018-12-27
	 */
	public static String parse_toStr(Object object, String defaultValue) {
		String result = null;
		result = StrUtil.isEmpty(object) ? defaultValue : object.toString().trim();
		return result;
	}

	/**
	 * 将object转换为str,defaultValue=null。
	 * 
	 * @param object
	 * @return cjw 2018-12-27
	 */
	public static String parse_toStr(Object object) {
		String result = null;
		result = StrUtil.isEmpty(object) ? null : object.toString().trim();
		return result;
	}

	/**
	 * 将object转换为str,defaultValue=RuntimeException。
	 * 
	 * @param object
	 * @return cjw 2018-12-27
	 */
	public static String parse_toStr_elseException(Object object) {
		//
		if (StrUtil.isEmpty(object) == true) {
			throw new RuntimeException("传入的参数有误!");
		}

		String result = null;
		result = object.toString().trim();
		return result;
	}

	/**
	 * 将object转换为int。
	 * 
	 * @param object
	 * @param defaultValue
	 * @return cjw 2018-12-27
	 */
	public static int parse_toInt(Object object, int defaultValue) {
		
		//过滤"undefined"字符串
		object=filter_undefined(object);
		
		int result = 0;
		result = StrUtil.isEmpty(object) ? defaultValue : Integer.parseInt(object.toString());
		return result;
	}

	/**
	 * 将object转换为int,defaultValue=0。
	 * 
	 * @param object
	 * @return cjw 2018-12-27
	 */
	public static int parse_toInt(Object object) {
		
		//过滤"undefined"字符串
		object=filter_undefined(object);
		
		int result = 0;
		result = StrUtil.isEmpty(object) ? 0 : Integer.parseInt(object.toString());
		return result;
	}

	/**
	 * 将object转换为int,defaultValue=RuntimeException。
	 * 
	 * @param object
	 * @return cjw 2018-12-27
	 */
	public static int parse_toInt_elseException(Object object) {
		
		//过滤"undefined"字符串
		object=filter_undefined(object);
		
		//
		if (StrUtil.isEmpty(object) == true) {
			throw new RuntimeException("传入的参数有误!");
		}
		
		int result = 0;
		result = Integer.parseInt(object.toString());
		return result;
	}

	/**
	 * 将object转换为boolean。
	 * 
	 * @param object
	 * @param defaultValue
	 * @return cjw 2018-12-27
	 */
	public static boolean parse_toBoolean(Object object, boolean defaultValue) {
		boolean result = false;
		result = StrUtil.isEmpty(object) ? defaultValue : Boolean.parseBoolean(object.toString());
		return result;
	}
	
	/**
	 * 将object转为bigDecimal。
	 * @param
	 * @return
	 * @author cjw 2019-09-06
	 */
	public static BigDecimal parse_toBigDecimal(Object object, BigDecimal defaultValue){
		BigDecimal bigDecimal=null;
		bigDecimal=StrUtil.isEmpty(object)? defaultValue: new BigDecimal(object.toString());
		return bigDecimal;
	}
	
	/**
	 * 将object转为bigDecimal,defaultValue为new BigDecimal("0")。
	 * @param
	 * @return
	 * @author cjw 2019-09-06
	 */
	public static BigDecimal parse_toBigDecimal(Object object){
		BigDecimal bigDecimal=null;
		bigDecimal=StrUtil.isEmpty(object)? new BigDecimal("0"): new BigDecimal(object.toString());
		return bigDecimal;
	}
	
	/**
	 * 将object转为bigDecimal,defaultValue为RuntimeException。
	 * @param
	 * @return
	 * @author cjw 2019-09-06
	 */
	public static BigDecimal parse_toBigDecimal_elseException(Object object){
		//
		if (StrUtil.isEmpty(object) == true) {
			throw new RuntimeException("传入的参数有误!");
		}
		
		BigDecimal bigDecimal=null;
		bigDecimal=new BigDecimal(object.toString());
		return bigDecimal;
	}
	
	/**
	 * 过滤"undefined"字符串,将"undefined"字符串置为null。
	 * 
	 * @param object
	 * @return
	 * @author cjw 2019-03-01
	 */
	public static Object filter_undefined(Object object) {
		//若object为"undefined"字符串
		if(object!=null && "undefined".equals(object.toString())) {
			object=null;
		}
		return object;
	}
	
	
	
	
	/**
	 *
	 * @param args
	 * @author cjw 2018-12-27
	 */
	public static void main_0(String[] args) {

	}

}
